<!DOCTYPE html>
<html lang="zh-CN">
    <!-- title -->


    

<!-- keywords -->



<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <meta name="author" content="文平夕">
    <meta name="renderer" content="webkit">
    <meta name="copyright" content="文平夕">
    
        <meta name="keywords" content="hexo,hexo-theme,hexo-blog">
    
    <meta name="description" content="">
    <meta name="description" content="Here&#39;s something encrypted, password is required to continue reading.">
<meta property="og:type" content="article">
<meta property="og:title" content="年初总结">
<meta property="og:url" content="https://lgsfly.gitee.io/2023/03/07/%E5%B9%B4%E5%88%9D%E6%80%BB%E7%BB%93/index.html">
<meta property="og:site_name" content="辄止的博客">
<meta property="og:description" content="Here&#39;s something encrypted, password is required to continue reading.">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2023-03-06T16:00:00.000Z">
<meta property="article:modified_time" content="2024-03-10T10:09:19.296Z">
<meta property="article:author" content="文平夕">
<meta name="twitter:card" content="summary">
    <meta http-equiv="Cache-control" content="no-cache">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <link rel="icon" href="/assets/myicon.ico">
    
    <title>年初总结 · Arbuda&#39;s Blog</title>
    <!-- /*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
/* This file is meant as a standalone workflow for
- testing support for link[rel=preload]
- enabling async CSS loading in browsers that do not support rel=preload
- applying rel preload css once loaded, whether supported or not.
*/ -->
<script>
    (function (w) {
        'use strict'
        // rel=preload support test
        if (!w.loadCSS) {
            w.loadCSS = function () {}
        }
        // define on the loadCSS obj
        var rp = (loadCSS.relpreload = {})
        // rel=preload feature support test
        // runs once and returns a function for compat purposes
        rp.support = (function () {
            var ret
            try {
                ret = w.document.createElement('link').relList.supports('preload')
            } catch (e) {
                ret = false
            }
            return function () {
                return ret
            }
        })()

        // if preload isn't supported, get an asynchronous load by using a non-matching media attribute
        // then change that media back to its intended value on load
        rp.bindMediaToggle = function (link) {
            // remember existing media attr for ultimate state, or default to 'all'
            var finalMedia = link.media || 'all'

            function enableStylesheet() {
                link.media = finalMedia
            }

            // bind load handlers to enable media
            if (link.addEventListener) {
                link.addEventListener('load', enableStylesheet)
            } else if (link.attachEvent) {
                link.attachEvent('onload', enableStylesheet)
            }

            // Set rel and non-applicable media type to start an async request
            // note: timeout allows this to happen async to let rendering continue in IE
            setTimeout(function () {
                link.rel = 'stylesheet'
                link.media = 'only x'
            })
            // also enable media after 3 seconds,
            // which will catch very old browsers (android 2.x, old firefox) that don't support onload on link
            setTimeout(enableStylesheet, 3000)
        }

        // loop through link elements in DOM
        rp.poly = function () {
            // double check this to prevent external calls from running
            if (rp.support()) {
                return
            }
            var links = w.document.getElementsByTagName('link')
            for (var i = 0; i < links.length; i++) {
                var link = links[i]
                // qualify links to those with rel=preload and as=style attrs
                if (
                    link.rel === 'preload' &&
                    link.getAttribute('as') === 'style' &&
                    !link.getAttribute('data-loadcss')
                ) {
                    // prevent rerunning on link
                    link.setAttribute('data-loadcss', true)
                    // bind listeners to toggle media back
                    rp.bindMediaToggle(link)
                }
            }
        }

        // if unsupported, run the polyfill
        if (!rp.support()) {
            // run once at least
            rp.poly()

            // rerun poly on an interval until onload
            var run = w.setInterval(rp.poly, 500)
            if (w.addEventListener) {
                w.addEventListener('load', function () {
                    rp.poly()
                    w.clearInterval(run)
                })
            } else if (w.attachEvent) {
                w.attachEvent('onload', function () {
                    rp.poly()
                    w.clearInterval(run)
                })
            }
        }

        // commonjs
        if (typeof exports !== 'undefined') {
            exports.loadCSS = loadCSS
        } else {
            w.loadCSS = loadCSS
        }
    })(typeof global !== 'undefined' ? global : this)
</script>

    <style type="text/css">
    @font-face {
        font-family: 'Oswald-Regular';
        src: url("/font/Oswald-Regular.ttf");
    }

    body {
        margin: 0;
    }

    header,
    footer,
    .back-top,
    .sidebar,
    .container,
    .site-intro-meta,
    .toc-wrapper {
        display: none;
    }

    .site-intro {
        position: relative;
        z-index: 3;
        width: 100%;
        /* height: 50vh; */
        overflow: hidden;
    }

    .site-intro-placeholder {
        position: absolute;
        z-index: -2;
        top: 0;
        left: 0;
        width: calc(100% + 300px);
        height: 100%;
        background: repeating-linear-gradient(-45deg, #444 0, #444 80px, #333 80px, #333 160px);
        background-position: center center;
        transform: translate3d(-226px, 0, 0);
        animation: gradient-move 2.5s ease-out 0s infinite;
    }

    @keyframes gradient-move {
        0% {
            transform: translate3d(-226px, 0, 0);
        }
        100% {
            transform: translate3d(0, 0, 0);
        }
    }
</style>

    <link rel="preload" href="/css/style.css?v=20221112" as="style" onload="this.onload=null;this.rel='stylesheet'">
    <link rel="preload" href="/css/dark.css?v=20221112" as="style">
    <link rel="stylesheet" href="/css/dark.css">
    <link rel="stylesheet" href="/css/mobile.css?v=20221112" media="(max-width: 960px)">
    <link rel="preload" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
    <link rel="preload" href="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js" as="script">
    <link rel="preload" href="/scripts/main.js?v=20221112" as="script">
    <link rel="preload" href="/scripts/dark.js?v=20221112" as="script">
    <link rel="preload" href="/font/Oswald-Regular.ttf" as="font" crossorigin>
    <link rel="preload" href="https://at.alicdn.com/t/font_327081_1dta1rlogw17zaor.woff" as="font" crossorigin>
    <!-- algolia -->
    
    <!-- 百度统计  -->
    
    <!-- 谷歌统计  -->
    
<meta name="generator" content="Hexo 5.4.1"></head>

    <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
    <script type="text/javascript">
        if (typeof window.$ == undefined) {
            console.warn('jquery load from jsdelivr failed, will load local script')
            document.write('<script src="/lib/jquery.min.js" />')
        }
    </script>
    
        <body class="post-body">
    
        <!-- header -->
        <header class="header header-mobile">
    <!-- top read progress line -->
    <div class="header-element">
        <div class="read-progress"></div>
    </div>
    <!-- sidebar menu button -->
    <div class="header-element">
        
            <div class="header-sidebar-menu">
        
            
                <div style="padding-left: 1px;">&#xe775;</div>
            
        </div>
    </div>
    <!-- header actions -->
    <div class="header-actions">
        <!-- theme mode switch button -->
        <span class="header-theme-btn header-element">
            <i class="fas fa-adjust"></i>
        </span>
        <!-- back to home page text -->
        <span class="home-link header-element">
            <a href=/>Arbuda's Studio.</a>
        </span>
    </div>
    <!-- toggle banner for post layout -->
    
        
            <div class="banner">
        
            <div class="blog-title header-element">
                <a href="/">Arbuda&#39;s Studio.</a>
            </div>
            <div class="post-title header-element">
                <a href="#" class="post-name">年初总结</a>
            </div>
        </div>
    
</header>

        <!-- fixed footer -->
        <footer class="footer-fixed">
    <!-- back to top button -->
    <div class="footer-fixed-element">
        
            <div class="back-top back-top-hidden">
        
        
            <div>&#xe639;</div>
        
        </div>
    </div>
</footer>

        <!-- wrapper -->
        <div class="wrapper">
            <div class="site-intro" style="







    height:50vh;

">
    
    <!-- 主页  -->
    
        
    <!-- 404页  -->
            
    <div class="site-intro-placeholder"></div>
    <div class="site-intro-img" style="background-image: url(/intro/post-bg.jpg)"></div>
    <div class="site-intro-meta">
        <!-- 标题  -->
        <h1 class="intro-title">
            <!-- 主页  -->
            
                年初总结
            <!-- 404 -->
            
        </h1>
        <!-- 副标题 -->
        <p class="intro-subtitle">
            <!-- 主页副标题  -->
            
                
            <!-- 404 -->
            
        </p>
        <!-- 文章页 meta -->
        
            <div class="post-intros">
                <!-- 文章页标签  -->
                
                    <div class= post-intro-tags >
    
    
</div>

                
                
                    <div class="post-intro-read">
                        <span>字数统计: <span class="post-count word-count">6</span>阅读时长: <span class="post-count reading-time">1 min</span></span>
                    </div>
                
                <div class="post-intro-meta">
                    <!-- 撰写日期 -->
                    <span class="iconfont-archer post-intro-calander">&#xe676;</span>
                    <span class="post-intro-time">2023/03/07</span>
                    <!-- busuanzi -->
                    
                        <span id="busuanzi_container_page_pv" class="busuanzi-pv">
                            <span class="iconfont-archer post-intro-busuanzi">&#xe602;</span>
                            <span id="busuanzi_value_page_pv"></span>
                        </span>
                    
                    <!-- 文章分享 -->
                    <span class="share-wrapper">
                        <span class="iconfont-archer share-icon">&#xe71d;</span>
                        <span class="share-text">Share</span>
                        <ul class="share-list">
                            <li class="iconfont-archer share-qr" data-type="qr">&#xe75b;
                                <div class="share-qrcode"></div>
                            </li>
                            <li class="iconfont-archer" data-type="weibo">&#xe619;</li>
                            <li class="iconfont-archer" data-type="qzone">&#xe62e;</li>
                            <li class="iconfont-archer" data-type="twitter">&#xe634;</li>
                            <li class="iconfont-archer" data-type="facebook">&#xe67a;</li>
                        </ul>
                    </span>
                </div>
            </div>
        
    </div>
</div>

            <script>
  // get user agent
  function getBrowserVersions() {
    var u = window.navigator.userAgent
    return {
      userAgent: u,
      trident: u.indexOf('Trident') > -1, //IE内核
      presto: u.indexOf('Presto') > -1, //opera内核
      webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
      gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
      mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
      ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
      android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
      iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者安卓QQ浏览器
      iPad: u.indexOf('iPad') > -1, //是否为iPad
      webApp: u.indexOf('Safari') == -1, //是否为web应用程序，没有头部与底部
      weixin: u.indexOf('MicroMessenger') == -1, //是否为微信浏览器
      uc: u.indexOf('UCBrowser') > -1, //是否为android下的UC浏览器
    }
  }
  var browser = {
    versions: getBrowserVersions(),
  }
  console.log('userAgent: ' + browser.versions.userAgent)

  // callback
  function fontLoaded() {
    console.log('font loaded')
    if (document.getElementsByClassName('site-intro-meta')) {
      document
        .getElementsByClassName('intro-title')[0]
        .classList.add('intro-fade-in')
      document
        .getElementsByClassName('intro-subtitle')[0]
        .classList.add('intro-fade-in')
      var postIntros = document.getElementsByClassName('post-intros')[0]
      if (postIntros) {
        postIntros.classList.add('post-fade-in')
      }
    }
  }

  // UC不支持跨域，所以直接显示
  function asyncCb() {
    if (browser.versions.uc) {
      console.log('UCBrowser')
      fontLoaded()
    } else {
      WebFont.load({
        custom: {
          families: ['Oswald-Regular'],
        },
        loading: function () {
          // 所有字体开始加载
          // console.log('font loading');
        },
        active: function () {
          // 所有字体已渲染
          fontLoaded()
        },
        inactive: function () {
          // 字体预加载失败，无效字体或浏览器不支持加载
          console.log('inactive: timeout')
          fontLoaded()
        },
        timeout: 5000, // Set the timeout to two seconds
      })
    }
  }

  function asyncErr() {
    console.warn('script load from CDN failed, will load local script')
  }

  // load webfont-loader async, and add callback function
  function async(u, cb, err) {
    var d = document,
      t = 'script',
      o = d.createElement(t),
      s = d.getElementsByTagName(t)[0]
    o.src = u
    if (cb) {
      o.addEventListener(
        'load',
        function (e) {
          cb(null, e)
        },
        false
      )
    }
    if (err) {
      o.addEventListener(
        'error',
        function (e) {
          err(null, e)
        },
        false
      )
    }
    s.parentNode.insertBefore(o, s)
  }

  var asyncLoadWithFallBack = function (arr, success, reject) {
    var currReject = function () {
      reject()
      arr.shift()
      if (arr.length) async(arr[0], success, currReject)
    }

    async(arr[0], success, currReject)
  }

  asyncLoadWithFallBack(
    [
      'https://cdn.jsdelivr.net/npm/webfontloader@1.6.28/webfontloader.min.js',
      'https://cdn.bootcss.com/webfont/1.6.28/webfontloader.js',
      "/lib/webfontloader.min.js",
    ],
    asyncCb,
    asyncErr
  )
</script>

            <img class="loading" src="/assets/loading.svg" style="display: block; margin: 6rem auto 0 auto; width: 6rem; height: 6rem;" />
            <div class="container container-unloaded">
                <main class="main post-page">
    <article class="article-entry">
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look.">
  <script id="hbeData" type="hbeData" data-hmacdigest="f94fa5b453a7156b74c3ba681f7017ec9bdf612412e898fb7cdb44f0c137d678">5ac133127601b8138922344275db590ea5e7b0be9a65201cf06362e019050e6aba3b981a8faa426dde36d0a2628a9b6021b3af9991db2faa24e01a24a4692d1fc146d02d0cad62de9152a21340a6c114b11c5a30caaa6c632073e6f5b8aa0ec3abe56930d0e34c2fe01e3b18e8ad92c7517ccfacdb4a02cbb99cbf1a63370ee6bc545b562d58736460e11d8282841d18326692006905b43fe9ed1cc8157fd87297ab6bf072b4ebbdb2f86c70450850b594b79ca2b71e2c62ce5e39540879860959746cb37dbfa491b361f7e90a9d4ec241b4214bb66e553bc49253d81feb7283de2c818604edb689690e6eaf0294c38916fd129009e23cf283f84d1ab4c13adb20c5640e21f8e378603e182829bc5d350a344359f3018b4d8c79b57c60f70f7f17b69e03a74909a2e9ce20c16701cdba26cb1971987db67116d0461698c380d2d1e74c897b2a80580801f51257820e79816a48b18b5e2f54a6ee5008d3e54a7c159284e34c983012b38b24eb63f0facf6e892594095418e04fc7439c791cd885b069fe9148350c874149cd0c66659b5d3fc07c9330627097f03001e0a8327d5efefc1101d6bff9811fce407124325df75f60f154fd7a5cbc5f131ffdf7f967e40353b0461bca827c3ef87ca64575513940ff7da852aee82cd830614b780523d540ad907e66f47328aa393c3d65e574109adfbf3cf913137b9c199b0abcacedeac1f2e0803b376ab293925b18512b276bdcc927634be60d949b3e1f05b5ccd46922799a3e9ca1218055f1ac347c748d1908766e1e343a7466aeabbb1d2e7580509358c92343a1107f558bbc690f4ade6a8c0849d2da004e034576ceed30f98cd89f7c8027b3e559697ef2a695192c3ad654c8a51a834c420df1381ee71f75052c650969d6ddd113b5eaed42cd3c661ae6377797d23f0483e0801b9e0143e4f3987070848cb0cb60b005759f74f471be6f4190075608356d80956337d60b433be6d0e3bbb2a94e5d9850eff874d19a02a7c34755f641e89e2f7b90f8de75662da6f623f276c3c8e8a0084ef486bb5c92bdf8a03e3e64112733ed32d062b25b0a075b1f295184b1421a75a94b4edcd7b5943e49f10c583147e959a3515d7972dcf8e4bf2ced98fc0726366cadcbec56ed07e08f0ba13a95f4a6352bc8fcd270d3d3910b00a2f844cca8b22b93ed3daef61379ba1577115fd657b63322bce4f6c50eb94cc99144781f1614d28e3c13f31b72cd1d63e8f5b1445d7a07323f736a9a1720f10507a52559331eae3adb20cc7eeaf8e55907b1cd6948f5f27f211e31a3bf708c0f473027428113b1716c00f3963d716fe5e6773cac6cc15176ae7942d86f8d8e272b6301dd57f273be609b81cfd7f3981a05a263b9e4fea91468e1d769c0b6bde3a7e033a433c6a65b803f86fe2897278f73738ac34044f33b194a22c091a7ab06f8b0273fe77f6a264a7f1e855e99bed4730ffe0a568d5e0dc5b513331a685683907e8d0e75c4e721aae9a20fe83e00b2fcb8810e8c49be22f645f994f33ce204f5aff1a6f03705a92e2d8e14b23bfc0d4140ec39846cb51e41ecc1c907ff3eee68a8cf57c87896bad111e57c50c3b107d560be3fd780da988383b243e2e47eed2dc9fb339f41cdc2c0bba36e67b8f686978f545535265d57307f1f75f576ecd8d8cd54b6227ff8c8dd9b33500c1f93ca5ab2ef9d41772d6bc8dc0a79c64aa3ee39b03825fcb51b642deb3695dc9d4dad973b5280177860855b6c68560566178f79a54b6aed9a2e0eb22c366d72e9249ee175db2bf754c66d9da0585413c562f393f12dd701dcea408e113b6b53ce769665ecec24cd2d2426e01ee0cefaa7cdc318238381ac453bded796cedec30d9ff51caafb148cdc47194148536fc6d5b8a152f1e8304c4b8b49204968a10486860a5641a12c174524fb746f48ca3bb1e009b38c7a20950234ec8d6ea006b3fcff9dcf9fbcce7382f74a3b15ad39c25fe854a04efd71f79bcc4a1e482968bf113990baff99c5c00a772b7d02a6d5d057e6a82db125ae2edd784ecae1d5f3d0b3121e738afc3586349289e6907bc21aea845bbb34dd53fef82dd65b69909605a48f3aefa2ef020a11d86a365b7cff284b72122bdfeb3821705a441e03817353efb25c9d731d8be4ec229f063cadb2cac9fc6a5418f95bb44ebfbf05f23acfa1a06cdf74e823d1804b935cab0d718b69055249dc0d48b480ecdc1bff26d2b16a09b7b1c3bf5e06546167f4ea8a233618d28ac2c7ad90cf1f42860c0b96dee9598031353eadf0d9d74e5fede57721e6250c396a06cda6112becdb607a1bcad233642f23ce1e48b608c15d686bbfd2cd75264d56ad88f253658e0764dfc8346ad18bbefb19e96a5a99a3295d081d7874ce00707a830964043333e64d691b08c1d75a7fc1bc488e15ee48c5007c54f8205364bb3878e1b46da273e7c50c54e4b9c72ced48484094ff688e5ac17c2884dc881fa69dd6b848bb6dcf031623a3e440965bc346cbefa132e83eee0b4209637686926c9b58982eff0e37c60419feece570071c9e6a21bde90fcdb78bb674254955d2f7346b0f7c32d9a4711ef97f146e5fb523a0f77ef5c5534cd501f691f18b371c75a049d6fb2c5e2aaa89cde66fe2c93d4ba83ed3dd72fd7063230f15d47e9f0fc19ec5e8ca6b483703dd744b5fa5c6db2870ff19f56f3bbbb19c39325e8b8d54b8f77df25d3d9164aa0cb055216d5245fba9bc8d6bcd5fcec28a7abc1579c9f1f19130cec165e50f5a836dbd7030483db0e1d86b6923af89e86731de36b3fe23f33034b9ad47a47f02d3149ea72d7cca6de4b4863add33fcffb67627e6150fe39cf332a6722d54b3bd993aa81647aaf8e6af21730cfea565a1d8ec754b4f157acaa1abe899371cef1ca052644a231d0db44113d93eff0bd702fe5e849bbf360d203a91349538bda90f118ddaa0f23373759346642cba1e1127c2b81b9409b7fe1fafe068de7d81ff1e0368b22521ea263dbf6de43a4cce1acfa7ed2058fe70d0c9912f713837145ab1311e65869a2a3679f32174f609756f1907a701f584f89080672e0b57a3ef211faae0a9410c2bb7f1102401a9dcab0a8ed4aaa2e3f43a1951a4c660359e7d87b623c9f76a048eef41760c7a716ff963f6c36b0e2ba0ace83039049504e135fb83e1b89b8b561649061b70b44f4381d49c3e45ed1ab2d754af90772ee568b49101a94c81c6332e6c9a8969a07c1017fe51c1859aa4f9f1e6940dfe0a82bb2a0229c44112cd3e02cb0ffccacc6c13cc2e27c9cd59e4b072696c3fbd06280969533145438ccc7e7faa70a2393904a33922bfa29de734f1525299b6be7ccf97f007a762b9ae4eda6703515f5dc84072247b841a79d416d06e66094cb33c34f752a25093eaed31a4f95b96a2ba3ec8aaefb15e0a5fa466c9a412cbd8b741b21c6964e4b612ca4bfc218dbc5f03d70b320679891e280bd2591b1a9f219284f13d42fcc0546c131e0f69d0816fd9375ad3fc2ec57ef1988def58babd0c28e549355bc1bdb9f38ed0216a9b280e5424afcc4068c536a14c987c1453ae83be3193fe7554155b70d1ca8d166ebe8dcb88db5a278e5f68129baab83ff288d93be0b98dce418f11fefb1aeaa927995e75e998a5511cec5d7614784879e4afbd2ea169aec7e25a869811acf1969be67b22ec33ba93b7604b706a3af276c7ea2ed6ac391386fc84d21b242fa3515053ec530987c0da3a3c8a08b1eb47f12c22bdfe2ca0ec5347799eaaca3e534f653ea69a076afff65f4d707722ab8892bacd63abf354ab57df369e33721fd96ad4f314e12e06fd8114e2d7cfe52dba867f5a6ca899a795797b58ba25004fadf2803f5561bfd5e3f987418c84e38305c56840d7225b4571e67a5faf28205e5d0e66bf54417933b62394000548b643f287f15e158dd4f99cddad129433d532cebe47b6b86523e3d7f4b95a9b67055cfdcaba3d995b8146b1f8ac49bd7b039d4d74bd26a84f3e9d8fc89b0fe554358dcbc7491e10aaa27865ac97c6d752fa42b31928971e5241bdadfae3474c8e403cdffb50d777789e352ca50032ba2780de7d80c938272ea1bdd2d739b1fd22edce841c5c38eab1048db43657afaa4a2b00aa93940ca211c2586c617b4682f2a4e54f00b6c14744c3a2f54e451aa033a9e8de1f866b230d46ffef5568fec6a1bae52ca3f7b626f4a65e4672bda942e0bba71291575c4b52a4e4a89734b63e13d77fcb3432a53d576fa7db0ad3501f8c56f8faea1f4108c9e5f272c3cd16e9485dc32fc5f1817872ec341825a180c77d895d549ef38a6f779dbbe05d13861daed65282e3c799fff0d96fb78730e818281f33841aaaaa0357c765a6ff79822fbb409226e1fe9debe0724a17f7779b00863a3630eb778650f55a083717ed4b4b2f690f787314b2c584653e3ee417f0701546c506873cf7ad5dfc98646bad5ea83339338ff1121d609c6f7202f65beacfb0a5165cc041568829f02a7553681a60666d54cea466ce9c93663c035f8cdd79da366232a0c86d5f8368569732e220f8e450f0e86f70e2845c42c6d9bf8fa7ebee4dd35380119cc2abaf199bbc09adca6d61a1532aa2987a28c0d9096eed0edab00ac6f00ee6c2d423efdfa202ad31d0912ca275986d1d8ad2e6649ce5d9c978a54599699ae8afd40dc604d6c8d6d5e1371d8c399dd40b1d4d9e3628620f6da17c32efc54305471afa7e1606abd3f30ec640479c71bc16ac8eaf09ecf3b85a5596b9000691d21dc6aeec5f8f06b78810ec5c90140177b5364ca0128fca804891452691ad928da3ef0940ebd0cefc7aeb9f2d273becbafefd68d7d843a1768c1e8f48679c61235a3aa8960e52fac9489a9b1e44fec587734059af5ed4bd9034c950942913ca5e9da6fb42f24cb60b4d841171f4c9c892dfcf7cfd9422e7a946396b44bae31de8f94a078e45a031a1eca03e696ec3f756a8ee37917ea3caf7b398af7926371b555ff62272c9266d1ef925e738235b4ffa7c46d4b868e2215ec3ffecc6d99eada231e0848567b22f8fd05fb5d4e61ef84b190531b1d68d19ec7c25121be90fd6cef840eae12e3492728556ea9cec62aa265801f6403996953f0afa805ce7715e10160dc8ba4de18aa33846d4da0f0a138b61959505aae57771ef962e2f3461d4f9d05445dcfe922bcda56e3d8001612591d8285e54c2f0333f4b41724423496c1484d979fdbfba3cf1997c3e1d24e912c075000c62e4c24dc34fe4e8742879894238c43d2602974de94d29663f318bfd75473325919a7913bd3eb28e15d9259b695b61ee2ddf72c74f608ec85f97ad8cacae816fe3ba72fbbb9ef96f94acc9fce304e816a7332c3325fd5bb36b6103ed9f9d17a7551b895f4d735d537298e1083200d895c69f8545877df38ce354acd66b9b4445c4bd89fedf9cb2fa3c34746032a0c45dd8eea40562fadd420a62f69daed00450277a1d2c0c0f4f9efa57dd25c354680d7f3ed908435fdc9a586f4db2a83057e4986e43ae60c27050e06767d83309f623ac467fea43cca53d7029ff8a15684f17863aa5510d356b08462c555ef67efc9693bb9a38646170ee63ac8e7c0d659a7c806cea23b1bc949ea997e99f7de0b68097df38e84ec8f8dc083d7e4d4165c968fe097b8d571451813e5c7a1873fb018a173e24199e1a417d3e9665901988802f7b61b60f308ed40607cd3089c2686221e65d672e4dcb98aaa2fa05c5e9532cb3aa3bced6398524d86f37a3f51a7c024873c973e93bc004fdcb88c646f71f828b65059dab8e847556dd8578b440618ec0f888b08a05b0d08c84930182525e66a615dec6df00ba2271bdaa465c1d34ae69dc28ac99c27336befab138cecc5a65b037611b9a2f15ed794f2720768e0d57811ab6d47a37209cf23059b7e728377d24be2938b088e2a702069887049b47392f23b82574f713cc946dd8ce0d316ac2c8938e4745191c8931967572a3291f7fee9ba1424fc03d3e01a8ec76f50f06dc31897a20cb3c68ed7753ca9ccbdfcede4b20dcec7462c8d69bb370e96893a53e2fc907ac361c254f5a1f75e2f7a03b27792166986c5f912c61a1c5d520cf5117415e567bfba9d564934e0f75fd670a318bad79e4541913da4881824e52ebbdd8a2f931a8b08c1d8b3e7c69dfae7abf869b3b4a37663c0bcdfbfc0828a9d0aa4f3c59cd93bb1f9a21ca2731af48da6b448a5ef872137bce22225b2c20a7a4cce6d95a124d54246f526bd2ba4270eff49c7e63bef6c1aceba525f290c2ae2d9bb89e4e0f05e5289992878661e9c5748e17131c1ed4efa51113a118e2830ad808d28166525e5ab4df93c8b5f2536da3e4af5e2c96a09aac9288090b51f9125ca03de5760d7a5065771289983fb73696519f31f00b947447a35630f8c467da921e83cc20293ac52ab3d78bba8d2b82d39ef2f9200b60a92e07a9984f9d85649f24d02e091ad2cfc683a83686f881a4a06b0f1f6fc8d83c403cbbc40475e8c4e4e0c95593c3ef9923a353d6a319e3724c5f7ea3c09b8f15dd324210989e7e130507dec5b3f51203e8c175ee435a62135fd18fa791747d3dc5690961690fd72b4fd154f5b40e1dcc8d2bebad17d729d08fab3f9478d20ab0d59d6eaabc5f777f81ae9829a764a3240ab823a145d683dcfc44af4d71c0179bac8d776136bbc171d88ffbc85f341cf96f1391d3d6b7d4976925d37fb7ec26739902a41ab71067a46b4f28570f6ea8d333795e563210bbb7e886a4482f1143100a99bdde245e2a66092ee94ee3dcb0b1ec8b62aae33b62af04f64db63e3a16bfd8080f94c26aff87fb2d4730310f5ba13d3e2a8046e0da945a0e9453670316449c83932174d8d7533ac5e982648d898fe05ab6835678982f564de9819f9efe0cf646e0b90b683a63b81c7a57cd9832f12fe370f9c8bb1a85c6be2d18f4c75f55cbe70d3a45bdddefe1662f9320cf88630f4da828fe5ae4229e81c2f3d735e2c41ec10e5237ae6a23f751d5a73544c6527c6c1f604de6891fc3b79d8695e0a1f3a0c0cf70e7582d7bfefbcfeb86c71c1dbe135df0448f9b42ae642bbcb592a1cff80f4a50e8ef4ba19345a21c70ff30e7fe43a56d63a0541e48a520bb900c7bb46c7de29238dc2271448e53f24b3dfb686eafc58484e0c2d724f741182a8900c33ce103a5bee8288d92404960b8402a5f5af9b6f0cbc58b63f9d24133ca7f29e59a8d5154010ecbc5165b5ca4659af3e9f6302ac2b1bf9e425d3ab1c21effea461533f9ee5c3b41dc7373a6566b6790cf1571d738b906ceb5f1097b4601187670e00b41c8a094db49e338887d3b5a9ffc6ca67e07001119fd4907ef09e6a227eb9e326d8a29b9d30bec6877fc63d07b4572d6f276fcc0dc093732c96b3a72a9391262dab2bc7b50862f1fff6dc96160ed1b3ca5c48bfd61f8ea028e9a92d255ba2ab3c64a002d96c5c7fdbda81ae06022f8b64abaecc26078bda7092c2f15699e56faffb8f5d497ce26e1149b36032953201fe8d178f0b566436d10fd199b18468dcdc5155eabc61ecffde431bde7b00afa4557bdeba36ccff0b19729303eefc0668035a2fc0e6f6308e19922d663886800c73cb76cc050e32605ade813855811b28645fa8c45a22e45bbb672bf5d91fd7a6cec56f3b3e582e3201b9850cd3b83f66aafd4e5bc8f7a73c76d9e67ecdd748aca677e08533e7b7fbd07ac4cfe6f58200659f7d05ec87c8d56d76ecf85ce9b2f7c462e5eb9b6e2fec4b762328f1628779aff713593381a46627b141c1d38fe274f49e491c5ed9a154e809a8a0b3e60748cc9d64907be07349eda3d0e992b44acb94cc921fea8fd2eb4878e113774a77c28767aa6029413d2bb460b046e765314007214d19f4a10cc366e3a6034d61fb2917f9e4efdac8f3544d60961005a7d4594eab6ba12a264f7f34d8bd9f52d83162db8761cef96b1767cd8a782ac41bb4424104a2fa190ea600dd22ad430afe84611d7f121bfb4364e05b717eb7a85e2c77ed9e971e957ee77eb01301f114fcb3d12d9e65b439f18bbaadbf119491c18219b8dee2d26413d13b20dfceb2595d7620fe77925bb60f80cf902074ce563fdf9fc2a918e8227db6b6b4a16677b07994959569f119b13d378daf8e933c3b3f3b6c2be14b5a94a60aea2a99f3e36aca5b7bcfe8e2f94dbcf596291c88df1ae882b20a54e17e4b696a8176751bc6ba23fa9ce695c5c7fb41a44227feff2be634b88fd62ce2cc8009dc4efaf583351cb1c737c5a1a4793c53e86708da5834d7d086974a8cad4c851881fc6854c7ebb7fdf7d54aa52283ac05dcc078ade25a06631bc74bd2f8984f714d0a9b21b33e9ee18645be70c9d013bd1a7a6072de525a1696913b13b3dc6c2fbe1382b5bc5b5158a814ad02c90fa46fc47c78d0dc76f34baf0988a5ae5a91099e6bc36966ae6d812f00e5a108ea8e0c6a1eb74cd38c0cd7eb11e05f7cab46659a920926246200fc8ff588ea4345fab1508f33d65ff31c6df228a873e6cc81a661661f1304619f799097c426ac48abdc6b60941360675c8e797e5ad38e25393552b4ee4f320fe2cc26b23646f66f8e06ca7289c64e38aefeac29939549e8883e5be1cd1d585e32c725aca7793fd4e6efa12597114d2ca775a2342322a89df1bc155f2a767a5b8c91ffca1ccf1df5691dcaba423936a2e5d7bac150c42bcd0b7defc812a3856079489b44c9c29e4faefb6a38284f6106215c8d2f1248fb5f485ac2c7e2b23694d2c43826dcc56469d45d90cd1cb2f10df656de54a5a5db1ce69808f758fb5629cd0b89f66f81bac27f777c233c05bf010b2178a6b363aa1df2b4793de4a5ed0a8e83bff4be4972c9d71edafaefb50277caa9f4bb37a363e46dd29bce4e5f10a18dcb6ff8802d730c7ce9bb6f442d719381dad407dfdc8d754d1e09dfb2a48a1889d3e34b98af6bd486bd1dcd53252938b602528530aeb5b42dcc4d2d3013a6d845163279efa6f5c9b639541620522c9f3e05784b216e7e0b67bedc7470836b0b6b3ac8adafb13e01ce882657ddf401b58c01d1099105bb6005c243d54ed05ad9dc9132d74b53594b1d7251ba41eda78abcf154c6db738888ce614a06e998e502127de41aa030653d5ab8fb24705de30eb6d27c6a4383813678e80cd439b6e66945660500fca1bb050d0116cca58d34f3a011c016064f2dbaea184f77628f0f601494751d757cc02a048dd625eb563415e0ac1b44619b1e20054d427034b5d882e0a842bcadab3b55c99546098da9fb8d7b152c58d703e9e85a1b33ca0a750f8999244e752e9c86b16f4da833149ce0c6840e08b8565d04fb153c81e00701d69d1d3deff3e8fd6b55b70a13f86211477c9160a07323cc3c6e68df7</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">Hey, password is required here.</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">
    </article>
    <!-- license -->
    
        <div class="license-wrapper">
            <p>原文作者：<a href="https://lgsfly.gitee.io">文平夕</a>
            <p>原文链接：<a href="https://lgsfly.gitee.io/2023/03/07/%E5%B9%B4%E5%88%9D%E6%80%BB%E7%BB%93/">https://lgsfly.gitee.io/2023/03/07/%E5%B9%B4%E5%88%9D%E6%80%BB%E7%BB%93/</a>
            <p>发表日期：<a href="https://lgsfly.gitee.io/2023/03/07/%E5%B9%B4%E5%88%9D%E6%80%BB%E7%BB%93/">March 7th 2023, 12:00:00 am</a>
            <p>更新日期：<a href="https://lgsfly.gitee.io/2023/03/07/%E5%B9%B4%E5%88%9D%E6%80%BB%E7%BB%93/">March 10th 2024, 6:09:19 pm</a>
            <p>版权声明：本文采用<a rel="license noopener" target="_blank" href="http://creativecommons.org/licenses/by-nc/4.0/">知识共享署名-非商业性使用 4.0 国际许可协议</a>进行许可</p>
        </div>
    
    <!-- paginator -->
    <ul class="post-paginator">
        <li class="next">
            
        </li>
        <li class="previous">
            
                <div class="prevSlogan">Previous Post</div>
                <a href="/2023/03/03/%E9%9A%8F%E7%AC%94%E4%B8%80/" title="随笔一">
                    <div class="prevTitle">随笔一</div>
                </a>
            
        </li>
    </ul>
    <!-- comment -->
    
        <div class="post-comment">
            <!-- 来必力 City 版安装代码 -->


            

            

            

            <!-- utteranc评论 -->


            <!-- partial('_partial/comment/changyan') -->
            <!--PC版-->


            
            

            

        </div>
    
    <!-- timeliness note -->
    <!-- idea from: https://hexo.fluid-dev.com/posts/hexo-injector/#%E6%96%87%E7%AB%A0%E6%97%B6%E6%95%88%E6%80%A7%E6%8F%90%E7%A4%BA -->
    
    <!-- Mathjax -->
    
</main>

                <!-- profile -->
                
            </div>
            <footer class="footer footer-unloaded">
    <!-- social  -->
    
        <div class="social">
            
    
        
            
                <a href="mailto:123456@qq.com" class="iconfont-archer email" title=email ></a>
            
        
    
        
            
                <a href="//github.com/lgsfly" class="iconfont-archer github" target="_blank" title=github></a>
            
        
    
        
            
                <span class="iconfont-archer wechat" title=wechat>
                    
                    <img class="profile-qr" src="/assets/qr_code.jpg" />
                </span>
            
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    
        
    


        </div>
    
    <!-- powered by Hexo  -->
    <div class="copyright">
        <span id="hexo-power">Powered by <a href="https://hexo.io/" target="_blank">Hexo</a></span><span class="iconfont-archer power">&#xe635;</span><span id="theme-info">theme <a href="https://github.com/fi3ework/hexo-theme-archer" target="_blank">Archer</a></span>
    </div>
    <!-- website approve for Chinese user -->
    
    <!-- 不蒜子  -->
    
        <div class="busuanzi-container">
            
             
                <span id="busuanzi_container_site_pv">PV: <span id="busuanzi_value_site_pv"></span> :)</span>
            
        </div>
    	
</footer>

        </div>
        <!-- toc -->
        
            <div class="toc-wrapper toc-wrapper-loding" style=







    top:50vh;

>
                <div class="toc-catalog">
                    <span class="iconfont-archer catalog-icon">&#xe613;</span><span>CATALOG</span>
                </div>
                
            </div>
        
        <!-- sidebar -->
        <div class="sidebar sidebar-hide">
    <ul class="sidebar-tabs sidebar-tabs-active-0">
        <li class="sidebar-tab-archives"><span class="iconfont-archer">&#xe67d;</span><span class="tab-name">Archive</span></li>
        <li class="sidebar-tab-tags"><span class="iconfont-archer">&#xe61b;</span><span class="tab-name">Tag</span></li>
        <li class="sidebar-tab-categories"><span class="iconfont-archer">&#xe666;</span><span class="tab-name">Cate</span></li>
    </ul>
    <div class="sidebar-content sidebar-content-show-archive">
        <div class="sidebar-panel-archives">
    <!-- 在 ejs 中将 archive 按照时间排序 -->
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
    
    
    
    <div class="total-and-search">
        <div class="total-archive">
        Total : 8
        </div>
        <!-- search  -->
        
    </div>
    
    <div class="post-archive">
    
        
            
            
            <div class="archive-year"> 2023 </div>
            <ul class="year-list">
            
        
        <li class="archive-post-item">
            <span class="archive-post-date">03/07</span>
            <a class="archive-post-title" href="/2023/03/07/%E5%B9%B4%E5%88%9D%E6%80%BB%E7%BB%93/">年初总结</a>
        </li>
    
        
        <li class="archive-post-item">
            <span class="archive-post-date">03/03</span>
            <a class="archive-post-title" href="/2023/03/03/%E9%9A%8F%E7%AC%94%E4%B8%80/">随笔一</a>
        </li>
    
        
            
            
                
                </ul>
            
            <div class="archive-year"> 2022 </div>
            <ul class="year-list">
            
        
        <li class="archive-post-item">
            <span class="archive-post-date">11/11</span>
            <a class="archive-post-title" href="/2022/11/11/Centos7Wifi/">CentOS7连接Wifi</a>
        </li>
    
        
        <li class="archive-post-item">
            <span class="archive-post-date">04/15</span>
            <a class="archive-post-title" href="/2022/04/15/SelfVVn/">SelfVVN</a>
        </li>
    
        
        <li class="archive-post-item">
            <span class="archive-post-date">04/01</span>
            <a class="archive-post-title" href="/2022/04/01/%E4%BA%BA%E9%97%B4%E5%9B%9B%E6%9C%88%E5%A4%A9/">人间四月天</a>
        </li>
    
        
        <li class="archive-post-item">
            <span class="archive-post-date">03/09</span>
            <a class="archive-post-title" href="/2022/03/09/CAP/">CAP理论面试考察点</a>
        </li>
    
        
        <li class="archive-post-item">
            <span class="archive-post-date">03/05</span>
            <a class="archive-post-title" href="/2022/03/05/hello-world/">Hello World</a>
        </li>
    
        
        <li class="archive-post-item">
            <span class="archive-post-date">03/05</span>
            <a class="archive-post-title" href="/2022/03/05/2022-03-05-%E5%BC%80%E7%AF%87/">开篇</a>
        </li>
    
    </div>
</div>

        <div class="sidebar-panel-tags">
    <div class="sidebar-tags-name">
        
            <span class="sidebar-tag-name" data-tags="操作系统">
                <span class="iconfont-archer">&#xe606;</span>
                操作系统
            </span>
        
            <span class="sidebar-tag-name" data-tags="随笔">
                <span class="iconfont-archer">&#xe606;</span>
                随笔
            </span>
        
    </div>
    <div class="iconfont-archer sidebar-tags-empty">&#xe678;</div>
    <div class="tag-load-fail" style="display: none; color: #ccc; font-size: 0.6rem;">
        缺失模块，请参考主题文档进行安装配置：https://github.com/fi3ework/hexo-theme-archer#%E5%AE%89%E8%A3%85%E4%B8%BB%E9%A2%98
    </div> 
    <div class="sidebar-tags-list"></div>
</div>

        <div class="sidebar-panel-categories">
    <div class="sidebar-categories-name">
    
        <span class="sidebar-category-name" data-categories="随笔">
            <span class="iconfont-archer">&#xe60a;</span>
            随笔
        </span>
    
    </div>
    <div class="iconfont-archer sidebar-categories-empty">&#xe678;</div>
    <div class="sidebar-categories-list"></div>
</div>

    </div>
</div>

        <!-- site-meta -->
        <script>
    var siteMetaRoot = "/"
    if (siteMetaRoot === "undefined") {
        siteMetaRoot = '/'
    }
    var siteMeta = {
        url: "https://lgsfly.gitee.io",
        root: siteMetaRoot,
        author: "文平夕"
    }
</script>

        <!-- import experimental options here -->
        <!-- Custom Font -->


        <!-- main func -->
        <script src="/scripts/main.js?v=20221112"></script>
        <!-- dark mode -->
        <script src="/scripts/dark.js?v=20221112"></script>
        <!-- fancybox -->
        <script src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js" defer></script>
        <!-- algolia -->
        
        <!-- busuanzi -->
        
            <script src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" async></script>
        
        <!-- CNZZ -->
        
        <!-- async load share.js -->
        
            <script src="/scripts/share.js?v=20221112" async></script>
        
        <!-- mermaid -->
        
    </body>
</html>
